package com.example.chapter05;

import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

// 1. 类定义：继承AppCompatActivity（基础Activity），实现CompoundButton.OnCheckedChangeListener接口
// 作用：让当前Activity能监听CheckBox的“选中状态变化”事件
public class CheckBoxActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 2. 加载布局文件（activity_check_box.xml），将XML布局与当前Activity关联
        setContentView(R.layout.activity_check_box);

        // 3. 获取布局中的两个CheckBox实例（通过ID查找）
        CheckBox ck_system = findViewById(R.id.ck_system); // 系统默认样式的CheckBox
        CheckBox ck_custom = findViewById(R.id.ck_custom); // 自定义图标的CheckBox

        // 4. 给两个CheckBox设置“选中状态变化监听器”
        // 监听器为this（当前Activity），因为Activity实现了OnCheckedChangeListener接口
        ck_system.setOnCheckedChangeListener(this);
        ck_custom.setOnCheckedChangeListener(this);
    }

    // 5. 实现接口的onCheckedChanged方法：当CheckBox的选中状态变化时触发
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        // 参数说明：
        // - buttonView：触发事件的CheckBox控件（谁被点击了）
        // - isChecked：当前的选中状态（true=选中，false=未选中）

        // 生成动态文本：根据选中状态显示“选中”或“取消选中”
        String desc = String.format("您 %s 了这个 CheckBox", isChecked ? "选中" : "取消选中");

        // 给触发事件的CheckBox设置文本（更新显示）
        buttonView.setText(desc);
    }
}